In the field of communication, the need for high-speed transmission of data, including video and audio, has continued to increase. Moreover, there has been an increase in the selection of services by which users can connect to a network, such as the Internet. Specifically, Internet Service Providers (ISPs) allow for connectivity to the Internet through different types of connections at different speeds such as lower-speed connections like Plain Old Telephone Service (POTS) at typically 56 kilobits/second or high-speed connections like Integrated Services Digital Network (ISDN), Digital Subscriber Line (DSL) Service, and Cable Modem Service over a Radio Frequency (RF) cable line. Service providers may be any of a company which provides subscribers with an Internet gateway and/or Internet content; a telecommunications company which provides network infrastructure; a company or firm which provides a virtual private network (VPN) connection to its employees; or any network-addressable entity that accepts and executes requests from consumers. It can be a mainframe system, a component, or some other type of software or hardware system that executes service requests. Further, other types of ISPs may enable subscribers to receive different types of media, such as video stream, audio stream, etc.
In a typical network, a network element (e.g., router, bridge, switch, etc.) is a piece of networking equipment, including hardware and software that communicatively interconnects other equipment on the network and supports a wide variety of features to facilitate the management, allocation, and distribution of IP addresses. Typically, a Dynamic Host Configuration Protocol (DHCP) server is responsible for allocating and assigning one or more Internet Protocol (IP) addresses to one or more clients. DHCP provides a mechanism for allocating IP addresses dynamically so that the addresses can be reused. The addresses are dynamically assigned from a pool of addresses maintained on the DHCP server. The DHCP server leases each of the DHCP clients one of the available IP addresses for a specified amount of time. Once the specified time has expired, the client renews the lease or requests a new IP address.
FIG. 1 illustrates a flow diagram showing a network configuration for processing a request for an IP address according to the prior art. In this configuration, a DHCP relay (network element) 101 serves as a relay agent with respect to a DHCP server 102 for one or more DHCP clients 103 and 104. Typically, whenever one of the clients 103 or 104 desires to enter the network, the client 103 or 104 sends a DHCP discovery broadcast to the DHCP relay 101. The DHCP relay 101 then forwards the request to the DHCP server 102. The DHCP 102 returns a response packet in the form of a DHCP offer back to the DHCP relay 101 which in turns forwards the response packet back to clients 103 or 104. When the DHCP relay 101 forwards the DHCP offer packet to clients 103 or 104, the DHCP relay 101 installs an IP-host route and Address Resolution Protocol (ARP) entry for the IP address assigned to the respective client 103/104. The IP-host route is also referred to as the default network gateway address and may be identified by a router ID (RID). The default gateway address indicates to the clients 103/104 the address of the DHCP server 102, which is needed by the client to connect to the network. ARP is an Internet Protocol used for mapping an IP address to a physical address on a local area network (LAN) such as an Ethernet LAN. That is, ARP maps an IP address to a physical machine address (such as a Media Access Control (MAC) address) that is recognized by the local network. Each device on a network has at least two addresses: a media access control (MAC) address and an Internet Protocol (IP) address, A MAC address is the address of the physical network interface card (NIC) inside the device, and never changes for the life of the device. A MAC address may also designate other physical components of a network such as a physical subnet. An IP address, on the other hand, can change if the machine moves to another part of the network or the network uses dynamic addressing such as DHCP. ARP is used to match, or resolve, an IP address to its appropriate MAC address (and vice versa). ARP works by broadcasting a packet to all hosts attached to the LAN. ARP packets contain the IP address the sender is interested in communicating with and the receiver processes the ARP packet and returns the corresponding MAC address.
Throughout this process, each of the clients 103/104 receives everything needed to connect to the network (e.g., a valid IP address assigned to the client and the default network gateway address of the DHCP server 102). As a result, further communication between clients 103/104 and DHCP server 102, such as the DHCP lease renewal and/or release, will take place between clients 103/104 and DHCP server 102 directly without substantially invoking the DHCP relay 101.
In an alternative approach, a network element may behave as a proxy for the DHCP server(s). Such a network element is said to be a DHCP proxy. In a DHCP system, when an IP address is requested from a DHCP server, the server responds by “leasing” the IP address to the DHCP client. Whenever an IP address lease times out, it is said to expire. In the case of an IP address expiration or in anticipation of the expiration, a DHCP client may obtain an IP address “renewal” if the DHCP client wishes to remain connected to the network for a longer period of time. In contrast, if a DHCP client wishes to disconnect from the network before the expiration of the IP address lease, the DHCP client may “release” the IP address back to the DHCP server. A network element acting as a DHCP proxy may facilitate the renewal and release of IP address leases. That is, the network element acting as a proxy aliases for the DHCP server. This allows the network element acting as a DHCP proxy to facilitate the handling of lease renewals and releases, and in many cases, to act as a DHCP proxy for multiple DHCP servers configured to provide redundancy.
FIG. 2 illustrates a data flow diagram showing a network configuration for processing a request for an IP address according to the prior art. In network configuration 200, the network configuration includes a DHCP Proxy (network element) 201 having an interface to serve as a DHCP proxy on behalf of the DHCP servers 202 to provide DHCP services to one or more DHCP clients 203/204. An interface such as the interfaces described herein is used to link physical ports to one or more virtual routers within a network element. The interface defines characteristics about the subscribers utilizing a particular network element port through port-interface binding. However, the virtual routers described herein are used by way of example and not of limitation. The interface can also be used to link physical ports to one or more physical routers. When clients 203/204 request DHCP service, the clients 203/204 send a DHCP discover packet to the DHCP Proxy 201 through their respective subnets. A subnet is, in general, a network that forms part of a larger network connected via a bridge or router and is defined as a portion of a network that shares a common address component. On TCP/IP networks, for example, subnets are defined as all devices whose IP addresses have the same prefix. In FIG. 2, clients 203 are connected to one subnet through DSLAM 209 and clients 204 are connected to another subnet through Ethernet switch 211. A DSLAM (digital subscriber line access multiplexer) is a device which takes a number of ADSL subscriber lines and concentrates these to a single ATM line. Similarly, an Ethernet switch is a device which provides a dedicated point-to-point connection between stations talking to each other. As such, DSLAM 209 and Ethernet switch 211 illustrate different ways of configuring client subnets to connect clients 203/204 to DHCP Proxy 201.
The DHCP Proxy 201 then forwards the DHCP discover packets to the DHCP servers 202 and the DHCP offer and request processes take place via DHCP Proxy 201. When the DHCP servers 202 assign an IP address to one of clients 203/204, one of DHCP servers 202 replies with a DHCP packet, such as a DHCP offer packet, which is received by the DHCP Proxy 201. However, prior to the DHCP Proxy 201 forwarding this DHCP reply packet to the respective client 203/204, DHCP Proxy 201 changes the DHCP IP address in the packet, from the DHCP server's 202 IP address to the DHCP Proxy's 201 TIP address. In addition, DHCP Proxy 201 installs an IP-host route and an ARP entry for the IP address assigned to the respective client 203/204. Through this process, each of the clients 203/204 have a valid IP addresses and know the IP address of the DHCP Proxy 201, therefore, the clients 203/204 now consider the DHCP Proxy 201 as the DHCP server 202. That is, DHCP Proxy 201 is now aliasing for (pretending to be like) DHCP server 202. Subsequently, clients 203/204 may further communicate with the network element 301 as a DHCP server for, among other things, the DHCP renewal or release of IP addresses. Since network element 201 serves as a proxy on behalf of one or more DHCP servers 202 having IP addresses from, for example, 1.1.1.1-1.1.1.5, network element 201 can maintain multiple DHCP servers, some of which may be used as redundant DHCP servers for backup purposes. In addition, since network element 201 knows which subscribers are assigned with the IP address from which DHCP servers, network element 201 may keep track and maintain a lease time of the IP addresses allocated to each subscriber. As a result, when a client releases its IP address back to network element 201 (since the client thinks network element 301 is the DHCP server), network element 201 knows that the IP address has been released and network element 201 does not have to keep listening to the traffic of the release IP address. In addition, where DHCP servers 202 service multiple network elements, a reloaded IP address may be reassigned to another subscriber of another network element.
In yet another alternative approach, a network element is operable to behave as both a DHCP relay agent and a DHCP proxy. FIG. 3 is a block diagram illustrating a network configuration showing alternative methods for processing a request for an IP address according to the prior art. Network configuration 300 includes a network element 301 to communicate with one or more clients 303 and 304. Network element 301 includes a DHCP relay interface 305 for clients 303 for relaying DHCP requests to one of a set of one or more DCHP servers 302 similar to the one shown in FIG. 1. In addition, network element 301 includes a DHCP proxy interface for clients 304 for serving as a DHCP proxy on behalf of the set of DHCP servers 302 similar to the one shown in FIG. 2.
When network element 301 is acting as a DHCP relay, clients 303 communicate (via DHCP relay interface 305 of the network element 301) directly with one of the DHCP servers 302. DHCP server(s) 302, in this example, are located at IP addresses 1.1.1.1-1.1.5. After acquiring IP addresses from DHCP servers 302, clients 303 directly communicate with one of the DHCP servers 302 without substantially involving the DHCP relay interface 305 of the network element 201. That is, when the respective clients 303 communicate with one of the DHCP servers 302, the client 303 specifies DHCP server's 302 IP address as its destination IP address (i.e., 1.1.1.1-1.1.1.5) in a communication packet, instead of DHCP relay's 305 interface IP address (2.2.2.254).
When the network element 301 is acting as a DHCP proxy, on the other hand, clients 304 communicate with the DHCP proxy interface 306 of network element 301, which in turn communicates with the DHCP servers 302. In this case, the DHCP proxy interface 306 serves as a proxy of the DHCP servers 302. That is, the DHCP proxy interface 306 acts as a DHCP server on behalf of one of the DHCP servers 302. When clients communicate with the DHCP server, clients 304 will specify a DHCP proxy interface, such as DHCP proxy's 306 interface IP address (e.g., 3.3.3.254) as its destination IP address instead of DHCP server's 302 IP address (e.g., 1.1.1.1-1.1.1.5), because clients 304 consider the DHCP proxy interface 306 as the DHCP server 302 they are communicating with.
FIG. 4A is a block diagram illustrating yet another network configuration according to the prior art having a DHCP relay network element in series with a separate DHCP proxy network element. Network configuration 400 includes DHCP proxy (network element) 401, DHCP Server(s) 402, DHCP relay (network element) 405, DHCP clients on subnets 403 and 404, relay interface I1 444, and logical interface I2 445. DHCP clients on subnets (e.g., 403 and 404) represent subnets with computer(s) or other data processing devices supporting DHCP clients like those in FIGS. 1-3. In network configuration 400, the DHCP relay 405 is positioned between the DHCP proxy 401 and the DHCP clients' 403 and 404 subnets. Such a network topology exists in many networks and must be accounted for by service providers who want to set up clientless IP services (CLIPS) for their subscribers. The basic idea behind CLIPS is to enable services without a Point-to-Point over Ethernet (PPPoE) client having to be installed on the device with the DHCP client. That is, CLIPS does not need to have a Point-to-Point connection between the service provider and the client to provide services to the client. Rather, CLIPS enables service providers to make various services available to clients without having a Point-to-Point connection between the client and the service provider network. CLIPS allows for the capture of the MAC address of a particular physical hardware device in a network, which, as discussed above, is another way to address the physical hardware within the network and is used to distinguish among different computing devices within a network whenever, for example, an IP address is not available. In order to set up CLIPS for clients in the network topology of FIG. 4A, however, the clients' subnets must be explicitly configured on the DHCP proxy 401. Specifically, in order to enable CLIPS for the DHCP clients on subnets 403 and 404 shown in FIG. 4A, there must be both explicit client subnet configurations setup on the DHCP proxy 401 for logical interface I2 445 and explicit route configurations from the relay interface I1 444 to the DHCP client subnets. The explicit configurations required for DHCP clients to connect to a network with the topology of FIG. 4A are contained within a configuration file located on the DHCP proxy 401, such as configuration file 410 shown in FIG. 4B.
FIG. 4B illustrates a prior art configuration file which includes both explicit route configurations from a relay interface to client subnets connected to a logical interface and explicit client subnet configurations on the logical interface. Explicit configuration file 410 is executed within the DHCP proxy 401 and includes both explicit routes to reach the DHCP client subnets using the interface I1 444 (IP address=192.168.1-1) as the next hop and explicit client subnet configurations on the logical interface I2 445. Specifically, in FIG. 4B the explicit route configurations from DHCP relay 405 to client subnets 403 and 404 are the explicit routes to reach subnets IP addresses 10.1.1.1/24 and 20.1.1.1/24 using 192.168.1.1 as a next hop. Similarly, the explicit client subnet configurations are the explicit client subnet configurations on the logical interface I2 445. The clients on subnets 403 and 404 are then provisioned as CLIPS subscribers by binding them together on the input of port 10/1 of DHCP proxy 401. In this way, prior art systems enabled CLIPS for DHCP clients in a network configuration where a DHCP relay is located between the DHCP proxy and the DHCP clients.